#define NULL 0

int* merge(int* a, int* b, int lengthA, int lengthB, int* lengthC){
	if(a == NULL || b == NULL || lengthA < 0 || lengthB < 0){
		*lengthC = 0;
		return NULL;
	}
	
	int i=0; //счётчик для массива А
	int j=0; //счётчик для массива B
	int k=0; //счётчик для массива с результатом
	int lengthMerged=lengthA+lengthB;
	
	int* mergedArray = new int[lengthMerged];

	while( i < lengthA || j < lengthB ){			
		if(j>=lengthB || i<lengthA && a[i]<b[j]){
			mergedArray[k]=a[i];			
			++i;
		}		
		else		
		if(j<lengthB){
			mergedArray[k]=b[j];
			++j;
		}
		k++;		
	}
	*lengthC = lengthMerged;
	return mergedArray;

}
